<?
class Pessoa extends Main
{
	function Pessoa()
	{
		$this->Main();
		if(!$this->conexao)
		{
			exit('Sem conexao '.__FILE__.__LINE__);
		}
	}
	
	function obtem($where="", $ordem="nome_pessoa", $limit="", $offset=0, $cod_site="")
	{
		if($cod_site == "")
		{
			$cod_site = AW_COD_SITE;
		}
		
		$sql = "SELECT *, date_format(nascimento_pessoa,'%Y') as nascimento_pessoa_ano, date_format(nascimento_pessoa,'%m') as nascimento_pessoa_mes, date_format(nascimento_pessoa,'%d') as nascimento_pessoa_dia FROM ". AW_BD_PREFIX ."pessoa WHERE cod_site = '$cod_site'";
		if($where != "")
		{
			$sql .= " AND ( $where ) ";
		}
		
		$sql .= " ORDER BY $ordem ";
		
		if($limit != "")
		{
			$sql .= " LIMIT $offset,$limit ";
		}

		// Trata retorno
		$resultq = $this->conexao->Execute($sql);
		unset($sql);
		if(!$resultq)
		{
			if(AW_DEBUG)
			{
				echo("Erro ao obter pessoa: ".__FILE__." : ".__LINE__."<br />".$this->conexao->ErrorMsg());
			}
			return false;
		}
		else
		{
			return $resultq->GetRows();
		}
	}
	
	function atualiza($dados)
	{
		if(!is_array($dados))
		{
			if(AW_DEBUG)
			{
				echo("Argumento deve ser um array: ".__FILE__." : ".__LINE__);
			}
			return false;
		}
		
		// Pega
		$sql = "SELECT * FROM ". AW_BD_PREFIX ."pessoa WHERE cod_pessoa = '".$dados['cod_pessoa']."'";
		$rs = $this->conexao->Execute($sql);
		$rs->GetRows();
		unset($sql);

		// Adodb retorna o sql para update
		$sql = $this->conexao->GetUpdateSQL($rs,$dados,true,false,true);
		$resultq = $this->conexao->Execute($sql);
		unset($sql);
		
		// Trata retorno
		if(!$resultq)
		{
			if(AW_DEBUG)
			{
				echo("Erro ao atualizar pessoa: ".__FILE__." : ".__LINE__."<br />".$this->conexao->ErrorMsg());
			}
			return false;
		}
		else
		{
			return true;
		}
	}
	
	function insere()
	{

		// Pega a pessoa vazia
		$sql = "SELECT * FROM ". AW_BD_PREFIX ."pessoa WHERE cod_pessoa = '-1'";
		$rs = $this->conexao->Execute($sql);
		$rs->GetRows();
		unset($sql);

		$dados = array('cod_site' => AW_COD_SITE);

		// Adodb retorna o sql para insert
		$sql = $this->conexao->GetInsertSQL($rs,$dados);
		$resultq = $this->conexao->Execute($sql);
		unset($sql);

		return $this->conexao->Insert_ID();
	}
	
	function checa($email,$senha)
	{
		$sql = "SELECT cod_pessoa,nome_pessoa,apelido_pessoa,email_pessoa FROM ". AW_BD_PREFIX ."pessoa WHERE 
				email_pessoa = '$email' AND 
				atv_pessoa = '1' AND
				senha_pessoa = password('$senha') ";
		$resultq = $this->conexao->Execute($sql);
		unset($sql);
		
		// Trata retorno
		if(!$resultq)
		{
			if(AW_DEBUG)
			{
				echo("Erro ao checar pessoa: ".__FILE__." : ".__LINE__."<br />".$this->conexao->ErrorMsg());
			}
			return false;
		}
		else
		{
			if($resultq->RecordCount() == 1)
			{
				$pessoa = $resultq->GetRows();
				return $pessoa[0]['cod_pessoa'];
			}
			else
			{
				return false;
			}
		}
	}
	
	function login($email,$senha)
	{
		global $_SESSION;
		$cod_pessoa = $this->checa($email,$senha);
		if(!$cod_pessoa)
		{
			return false;
		}
		else
		{
			$pessoa = $this->obtem("cod_pessoa = '". $cod_pessoa ."'");
			$pessoa = $pessoa[0];
			
			$_SESSION['pessoa'] = $pessoa;
			return true;
		}
	}
}
?>